package com.base.lock;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * redis分布式锁
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface RedisLock {
	
	/**Redis的key */
	String value() default  "";	
	
	/**方法参数的名字，通过此参数值动态获取key，优先查看value的值，如果vlue值存在，则此设置失效*/
	String key() default  "";			
	
	/**Redis key的前缀*/
	String prefix() default  "";	

	/**未获取到锁是否立即抛异常，true:不等待，false:等待*/
	boolean noWait() default false;
}
